#ifndef ITHEME_H
#define ITHEME_H
#include <QColor>

class ITheme
{
public:
    virtual ~ITheme(){}

    virtual QColor background() = 0;
    virtual void setBackground(QColor color) = 0;

    virtual QColor selectForeground() = 0;
    virtual void setSelectForeground(QColor color) = 0;

    virtual QColor selectBackground() = 0;
    virtual void setSelectBackground(QColor color) = 0;

    virtual QColor marginBackground() = 0;
    virtual void setMarginBackground(QColor color) = 0;

    virtual QColor marginForeground() = 0;
    virtual void setMarginForeground(QColor color) = 0;

    virtual QColor marginSelectForeground() = 0;
    virtual void setMarginSelectForeground(QColor color) = 0;



    virtual void setLexer(const QString & lexerName) = 0;

    virtual QColor foreground(const QString & key, QColor defColor = Qt::black) = 0;
    virtual void setForeground(const QString & key, QColor color) = 0;

    virtual bool bold(const QString & key) = 0;
    virtual void setBold(const QString & key, bool isBold) = 0;

    virtual bool italic(const QString & key) = 0;
    virtual void setItalic(const QString & key, bool isItalic) = 0;

    virtual bool save() = 0;
};

Q_DECLARE_INTERFACE(ITheme, "ITheme/1.0")

#endif
